package com.skycong.hello77.activity.webview;

import android.app.Activity;
import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.webkit.SslErrorHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Toast;

import com.skycong.hello77.R;
//

/**
 * WebView
 * Created by Kiki on 2018/4/28.
 */

public class WebViewActivity extends Activity implements View.OnClickListener {
    private ProgressWebView webview;
    public final static String TAG = "msg";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_webview);
        initView();
    }

    private void initView() {
        findViewById(R.id.layout_back).setOnClickListener(this);
       //((TextView)findViewById(R.id.layout_title)).setText("加载百度");


        ((TextView)findViewById(R.id.layout_title)).setText("加载百度");
        final String url = getIntent().getStringExtra("url");
        Log.i(TAG,"url地址"+url);
        if(url==null){
            Toast.makeText(this,"URL地址不存在",Toast.LENGTH_LONG).show();
            finish();
            return;
        }
        webview = (ProgressWebView) findViewById(R.id.web_view);
        webview.setDefaultWebSettings(webview.getSettings());

        webview.loadUrl(url);
        //覆盖webView默认通过第三方或是系统浏览器打开网页的行为，使得网页可以在WebView中打开，返回值是true,控制网页在webView中打开
      webview.setWebViewClient(new WebViewClient(){
            //打开网页时不调用系统浏览器， 而是在本WebView中显示
            @Override
            public boolean shouldOverrideUrlLoading(WebView view,String url) {
                view.loadUrl(url);
                return true;
            }
            //页面开始
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }

            //页面加载资源，
            @Override
            public void onLoadResource(WebView view, String url) {
                super.onLoadResource(view, url);
                //设定加载资源的操作
            }
            //页面结束
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
            }
            /*
            *  WebView组件加载网页发生证书认证错误时，会调用WebViewClient类的onReceivedSslError方法，
            *  如果该方法实现调用了handler.proceed()来忽略该证书错误，
            *  则会受到中间人攻击的威胁，可能导致隐私泄露。
            * */
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                //super.onReceivedSslError(view, handler, error);//注意，这句话要注释掉
                Log.i(TAG,"加载不成功"+error);
                handler.proceed();//接受证书
                //这行代码一定加上否侧效果不会出现
                webview.getSettings().setJavaScriptEnabled(true);
            }
       });
    }

    @Override
    public void onClick(View v) {
       if(v.getId() == R.id.layout_back){
           finish();
       }
    }
}
